///////////////////////////////////////////////////////////////////////////////
/// @file debug.cpp
/// @author Benjamin J. Orr
/// @brief -- A set of debug functions to toggle debug messages at compile time
///////////////////////////////////////////////////////////////////////////////

/////////////////////////////
/// CUSTOM LIBS
/////////////////////////////
#include "debug.h"

/////////////////////////////
/// LIBS
/////////////////////////////
#include <iostream>
using std::cerr;
using std::endl;
#include <string>
using std::string;

///////////////////////////////////////////////////////////////////////////////
/// @fn void debug(int level, string msg)
/// @brief -- Function takes a level (0-9) and a message, outputs an error
///           message
/// @param int level -- The severity of the error level
/// @param string msg -- Message to display to the user
///////////////////////////////////////////////////////////////////////////////
void debug(int level, string msg)
{
  //So if debug is off, we just ignore this whole block of code and return
  #ifdef DEBUG
  
  if(level < 10 && level > -1)
  {
    if(level <= DEBUG)
    {
      cerr << "DEBUG level: " << level << " -- Message: " << msg << endl;
    }
  }
  else
  {
    cerr << "Bad DEBUG level: " << level << " Should be [0,9]" << endl;
  }
  #endif
  return;
}
